Лабораторная работа №2. Защита научно-технической информации предприятия

Дисциплина: Кибербезопасность предприятия

Астраханцева Анастасия

Ганина Таисия

Ибатулина Дарья

Шошина Евгения

Кадирова Мехрубон

Хассан Факи Абакар

Группа НФИбд-01-22

Российский университет дружбы народов, Москва, Россия

15 октября 2025

Вводная часть

Цели и задачи

Целью лабораторной работы является освоение практических навыков выявления, анализа и устранения уязвимостей информационных систем в рамках сценария «Защита научно-технической информации предприятия».

Задание

  1. Изучить уязыимости: слабый пароль пользователя, Blind SQL, XSS
  2. Проанализировать последовательность действий нарушителя на каждом этапе атаки.
  3. Освоить методы детектирования атак с использованием средств мониторинга и анализа безопасности.
  4. Выполнить мероприятия по устранению последствий атаки.

Заполнение карточек инцидентов

Для обнаружения и анализа атак использовались средства ViPNet IDS NS. Были зафиксированы следующие ключевые инциденты, соответствующие этапам атаки

Установка фильтров

Активность трояна LaZagne

Активность трояна LaZagne

Попытка выполнения удаленного кода через Microsoft PowerShell на клиентском устройстве

Попытка выполнения удаленного кода через Microsoft PowerShell на клиентском устройстве

Уязвимость XSS

Уязвимость XSS

Попытка SQL-инъекции с использованием SELECT и SLEEP на веб-сервере redmine.ampire.corp

Попытка SQL-инъекции с использованием SELECT и SLEEP на веб-сервере redmine.ampire.corp

Чужой пользователь Redmine

Чужой пользователь Redmine

Устранение первой уязвимости и последствия

Устанение первой уязвимости

Для устранения уязвимости 1 необходимо сменить пароль пользователя

Смена пароля

Устранена уязвимость 1

Устранена уязвимость “Слабый пароль пользователя”

Описание последствия 1

Что произошло из-за установки слабого пароля пользователя dev1:

Начало атаки: Внутренний нарушитель подобрал слабый пароль на файловом сервере и заменил легитимный файл на вредоносный (backdoor).

Заражение: Пользователь dev1 скачал и запустил этот вредоносный файл.

Закрепление: После получения контроля над компьютером dev1, нарушитель создал задачу в планировщике, которая будет автоматически запускать вредоносный файл svchosting.exe каждый раз при входе пользователя dev1 в систему. Это позволяет злоумышленнику сохранять доступ к компьютеру даже после перезагрузки.

Вкладка General в планировщике задач

Открываем планировщик задач и обнаруживаем подозрительную задачу:

Вкладка General в планировщике задач

Вкладка Actions в планировщике задач - путь к вредоносному файлу

Задача настроена на выполнение программы (Start a program). Путь к исполняемому файлу: C:\Users\dev1\Downloads\svchosting.exe. Это указывает на то, что злоумышленник разместил вредоносный файл svchosting.exe в папке загрузок пользователя dev1 и настроил его автоматический запуск через планировщик задач.

Вкладка Actions в планировщике задач - путь к вредоносному файлу

Устранено последствие уязвимости “Слабый пароль пользователя”

Для устранения последствия мы удалили задачу и вредоносный exe-файл в директории C:\Users\dev1\Downloads.

Переходим на сервер и видим, что устанено последствие уязвимости “Слабый пароль пользователя”

Устранено последствие уязвимости “Слабый пароль пользователя”

Просмотр учетных данных администратора

На скриншоте видим, что для доступа к серверу Redmine (10.10.2.15) были использованы учетные данные администратора (admin). Это необходимо для получения прав на редактирование кода сервера.

Просмотр учетных данных администратора

Mодификация файла redcloth3.rb

Видим, что злоумышленником была добавлена константа ALLOWED_TAGS, которая определяет список тегов, которые не будут экранироваться. Тег <pre>, который использовался злоумышленником для внедрения вредоносного JavaScript-кода, мы исключили из этого списка. Теперь, при обнаружении любого тега, не входящего в ALLOWED_TAGS, он теперь будет автоматически экранирован (заменен на < и >), что делает его безопасным для отображения.

Модификация файла redcloth3.rb для устранения уязвимости

Перезапуск сервера

После внесения изменений в код в терминале мы выполняем команду sudo systemctl restart nginx.service. Это необходимо для того, чтобы веб-сервер загрузил обновленный код и изменения вступили в силу.

Перезапуск сервера

Содержимое Wiki-страницы после внесения изменений в код и перезапуска сервера

На скриншоте показано содержимое Wiki-страницы проекта Dev1 до и после перезапуска сервера. До перезапуска вредоносный код отображался “как есть”, запускался при переходе на веб-страницу, а после — был экранирован и стал просто текстом.

Содержимое Wiki-страницы после внесения изменений в код и перезапуска сервера

Видим, что уязвимость XSS успешно устранена

Устранена уязвимость 2 (XSS)

Удаление нового пользователя Redmine

В ходе сценария внутренний нарушитель успешно эксплуатировал уязвимость XSS (CVE-2019-17427) для внедрения вредоносного JavaScript-кода на Wiki-страницу проекта Dev1. Этот код был направлен на создание нового пользователя с правами администратора, что позволило злоумышленнику получить неограниченный доступ к системе Redmine и ее конфиденциальной информации.

Удаление нового пользователя Redmine

Полностью устранена вторая уязвимость и её последствие

Полностью устранена вторая уязвимость и её последствие

Эксплуатация уязвимости Blind SQL-инъекции

На приведенном скриншоте показан процесс эксплуатации уязвимости до ее устранения. Он демонстрирует, как злоумышленник проводит атаку Blind SQL-инъекции.

Эксплуатация уязвимости Blind SQL-инъекции

Внесение изменений в файл query.rb

Внесем изменения в файл query.rb. Этот файл является частью модели данных Redmine и отвечает за формирование SQL-запросов к базе данных. В нем находится код, который обрабатывает параметр subproject_id.

Внесение изменений в файл query.rb

Перезапуск сервера

После внесения изменений в файл query.rb в терминале мы выполняем команду sudo systemctl restart nginx.service. Это необходимо для того, чтобы изменения вступили в силу.

Перезапуск сервера

Полностью устранена третья уязвимость (последствия нет)

Уязвимость Blind_SQLi была устранена

Результаты

В ходе лабораторной работы был успешно реализован сценарий защиты научно-технической информации предприятия: обнаружены и устранены уязвимости (слабый пароль, XSS, Blind SQL-инъекция), нейтрализованы последствия атаки (удалён backdoor и несанкционированный пользователь Redmine).